<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
	<meta name="keywords" content="Nacos,service,configuration,performance" />
	<meta name="description" content="Nacos service configuration performance test report" />
	<!-- 网页标签标题 -->
	<title>Nacos service configuration performance test report</title>
	<link rel="shortcut icon" href="https://img.alicdn.com/tfs/TB1hgJpHAPoK1RjSZKbXXX1IXXa-64-64.png"/>
	<link rel="stylesheet" href="/build/documentation.css" />
</head>
<body>
	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/en-us/index.html"><img class="logo" src="/img/nacos_colorful.png"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">中</span><div class="header-menu"><img class="header-menu-toggle" src="/img/menu_gray.png"/><ul><li class="menu-item menu-item-normal"><a href="/en-us/index.html">HOME</a></li><li class="menu-item menu-item-normal menu-item-normal-active"><a href="/en-us/docs/quick-start.html">DOCS</a></li><li class="menu-item menu-item-normal"><a href="/en-us/blog">BLOG</a></li><li class="menu-item menu-item-normal"><a href="/en-us/community">COMMUNITY</a></li><li class="menu-item menu-item-normal"><a href="https://cn.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0">NACOS IN CLOUD</a><img class="menu-img" src="https://img.alicdn.com/tfs/TB1esl_m.T1gK0jSZFrXXcNCXXa-200-200.png"/></li><li class="menu-item menu-item-normal"><a href="http://console.nacos.io/nacos/index.html">DEMO-CONSOLE</a></li></ul></div></div></header><div class="bar"><div class="bar-body"><img src="/img/docs.png" class="front-img"/><div class="bar-title"><span>Documentation</span><div class="bone bone-light"></div></div><img src="/img/docs.png" class="back-img"/></div></div><section class="content-section"><div class="content-body"><div class="sidemenu"><div class="sidemenu-toggle"><img src="https://img.alicdn.com/tfs/TB1E6apXHGYBuNjy0FoXXciBFXa-200-200.png"/></div><ul><li class="menu-item menu-item-level-1"><span>Nacos </span><ul><li style="height:180px;overflow:hidden" class="menu-item menu-item-level-2"><span>What is Nacos<img style="transform:rotate(0deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/en-us/docs/what-is-nacos.html" target="_self">What is Nacos</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/concepts.html" target="_self">Concepts</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/architecture.html" target="_self">Architecure</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/feature-list.html" target="_self">Feature list</a></li></ul></li><li style="height:324px;overflow:hidden" class="menu-item menu-item-level-2"><span>Quick Start<img style="transform:rotate(0deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/en-us/docs/quick-start.html" target="_self">Nacos</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/quick-start-spring.html" target="_self">Nacos Spring</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/quick-start-spring-boot.html" target="_self">Nacos Spring Boot</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/quick-start-spring-cloud.html" target="_self">Nacos Spring Cloud</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/quick-start-docker.html" target="_self">Nacos Docker</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/use-nacos-with-dubbo.html" target="_self">Nacos with Dubbo</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/use-nacos-with-kubernetes.html" target="_self">Nacos with K8s</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/nacos-sync.html" target="_self">Nacos Sync</a></li></ul></li><li style="height:252px;overflow:hidden" class="menu-item menu-item-level-2"><span>User Guide<img style="transform:rotate(0deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/en-us/docs/sdk.html" target="_self">Java SDK</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/other-language.html" target="_self">Other Language</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/open-api.html" target="_self">Open-API</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/nacos-spring.html" target="_self">Nacos Spring</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/system-configurations.html" target="_self">Nacos System Configurations</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/faq.html" target="_self">FAQ</a></li></ul></li><li style="height:36px;overflow:hidden" class="menu-item menu-item-level-2"><span>Admin Guide<img style="transform:rotate(-90deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/en-us/docs/deployment.html" target="_self">Deployment Guide</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/cluster-mode-quick-start.html" target="_self">Cluster Mode Deployment</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/management-api.html" target="_self">Management OpenAPI</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/console-guide.html" target="_self">Admin Console Guide</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/monitor-guide.html" target="_self">Nacos Monitor Guide</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/nacos-config-benchmark.html" target="_self">Nacos Config Benchmark</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/nacos-naming-benchmark.html" target="_self">Nacos Naming Benchmark</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/nacos-sync-use.html" target="_self">Data Migration to Nacos</a></li></ul></li><li style="height:36px;overflow:hidden" class="menu-item menu-item-level-2"><span>Contributor Guide<img style="transform:rotate(-90deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/en-us/docs/contributing.html" target="_self">Contribute to Nacos</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/contributing-flow.html" target="_self">Contributing Flow</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/pull-request.html" target="_self">Pull Request Template</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/how-to-reporting-bugs.html" target="_self">How to report bugs</a></li></ul></li><li style="height:36px;overflow:hidden" class="menu-item menu-item-level-2"><span>Community<img style="transform:rotate(-90deg)" class="menu-toggle" src="/img/arrow_down.png"/></span><ul><li class="menu-item menu-item-level-3"><a href="/en-us/docs/community.html" target="_self">Community</a></li><li class="menu-item menu-item-level-3"><a href="/en-us/docs/nacos-dev.html" target="_self">Develop Team</a></li></ul></li></ul></li></ul></div><div class="doc-content markdown-body"><h1>Nacos service configuration performance test report</h1>
<h2>Test purposes</h2>
<p>Let everybody understand the Nacos main performance load and capacity, to help us better manage Nacos performance quality, help users use of assessment Nacos system load faster.</p>
<h2>Test tools</h2>
<p>We use the research of PAS performance evaluation service platform for pressure measurement, the principle is based on the use of JMeter engine, the use of PAS to automatically generate the JMeter scripts, intelligent pressure measurement.</p>
<p><img src="https://img.alicdn.com/tfs/TB1xCfDDpzqK1RjSZFvXXcB7VXa-692-297.png" alt="IMAGE"></p>
<h2>Test environment</h2>
<h3>1.environment</h3>
<table>
<thead>
<tr>
<th>indicators</th>
<th>parameter</th>
</tr>
</thead>
<tbody>
<tr>
<td>machine</td>
<td>CPU 8 nuclear, 16G memory</td>
</tr>
<tr>
<td>cluster size</td>
<td>stand-alone, 3 nodes, 10 nodes, 100 nodes</td>
</tr>
<tr>
<td>Nacos version</td>
<td>0.8.0</td>
</tr>
<tr>
<td>database</td>
<td>32C128G</td>
</tr>
</tbody>
</table>
<h3>2.Set the launch parameters</h3>
<pre><code>/opt/taobao/java/bin/java -server -Xms4g -Xmx4g -Xmn2g 
-XX:MetaspaceSize=128m 
-XX:MaxMetaspaceSize=320m 
-Xdebug 
-Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n 
-XX:+UseConcMarkSweepGC 
-XX:+UseCMSCompactAtFullCollection 
-XX:CMSInitiatingOccupancyFraction=70 
-XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 
-XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 
-XX:-UseParNewGC -verbose:gc -Xloggc:/home/admin/nacos/logs/nacos_gc.log 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime 
-XX:+PrintAdaptiveSizePolicy -Dnacos.home=/home/admin/nacos -XX:-OmitStackTraceInFastThrow 
-XX:-UseLargePages -jar /home/admin/nacos/target/nacos-server.jar 
--spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/admin/nacos/conf/
</code></pre>
<h2>Test scenarios</h2>
<p>The following test scenarios are service discovery interface:</p>
<ul>
<li>Verify Nacos service ability to release configuration</li>
<li>Verify Nacos service access configuration</li>
<li>Verify Nacos service listening configuration</li>
<li>Verify Nacos service long connection capacity ability</li>
</ul>
<h2>Test data</h2>
<h3>1. Release configuration</h3>
<p>The performance of the main test launch configuration Nacos publishConfig interface.<br>
In the performance of each scale clusters:</p>
<table>
<thead>
<tr>
<th style="text-align:center">stand-alone</th>
<th style="text-align:center">3 nodes</th>
<th style="text-align:center">10 nodes</th>
<th style="text-align:center">100 nodes</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1400</td>
<td style="text-align:center">4214</td>
<td style="text-align:center">6863</td>
<td style="text-align:center">8626</td>
</tr>
</tbody>
</table>
<p>We look at three nodes specific services cluster configuration ability.<br>
The following for each concurrency (press the machine number * concurrency), the configuration of the TPS, the average RT.
<img src="https://img.alicdn.com/tfs/TB1OjzIDpzqK1RjSZFoXXbfcXXa-693-400.png" alt="IMAGE">
<img src="https://img.alicdn.com/tfs/TB1s.EfDxjaK1RjSZKzXXXVwXXa-693-325.png" alt="IMAGE"></p>
<h3>2. Access configuration</h3>
<p>Access to configuration for Nacos getConfig interface for testing.<br>
The measured performance in each cluster size:</p>
<table>
<thead>
<tr>
<th style="text-align:center">stand-alone</th>
<th style="text-align:center">3 nodes</th>
<th style="text-align:center">10 nodes</th>
<th style="text-align:center">100 nodes</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">15000</td>
<td style="text-align:center">23013</td>
<td style="text-align:center">45000</td>
<td style="text-align:center">161099</td>
</tr>
</tbody>
</table>
<p>We also look at the three nodes specific services cluster acquire configuration, the following for each concurrency (pressure machine is used for * concurrency), access to configuration of TPS, the average RT.
<img src="https://img.alicdn.com/tfs/TB1UjzDDr2pK1RjSZFsXXaNlXXa-691-365.png" alt="IMAGE">
<img src="https://img.alicdn.com/tfs/TB1kcfADwTqK1RjSZPhXXXfOFXa-691-380.png" alt="IMAGE"></p>
<h3>3. Listening configuration</h3>
<p>Perform Nacos addListeners the performance of the interface to monitor configuration mainly adopts increase more configuration monitoring, and issued several configuration method, statistics released time and listening to receive configuration time interval.<br>
We pick a few points, and lists the publish and listening time, the basic within 100 ms can listen to the configuration changes.</p>
<table>
<thead>
<tr>
<th style="text-align:center">times</th>
<th style="text-align:center">publish and listening time (ms)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:center">63</td>
</tr>
<tr>
<td style="text-align:center">2</td>
<td style="text-align:center">53</td>
</tr>
<tr>
<td style="text-align:center">3</td>
<td style="text-align:center">84</td>
</tr>
<tr>
<td style="text-align:center">4</td>
<td style="text-align:center">73</td>
</tr>
<tr>
<td style="text-align:center">5</td>
<td style="text-align:center">46</td>
</tr>
<tr>
<td style="text-align:center">6</td>
<td style="text-align:center">35</td>
</tr>
<tr>
<td style="text-align:center">7</td>
<td style="text-align:center">73</td>
</tr>
<tr>
<td style="text-align:center">8</td>
<td style="text-align:center">183</td>
</tr>
<tr>
<td style="text-align:center">9</td>
<td style="text-align:center">104</td>
</tr>
</tbody>
</table>
<h3>4. Long connection capacity test</h3>
<p>Nacos listener configuration with the client to establish long connection, long service connection consumes memory, thereby cluster increased load.Build up capability of the capacity of long connection, mainly examines configuration monitor bottlenecks.<br>
Cluster connectivity test methods are increasing stand-alone connection to reach 9000, CPU: 13.9% memory: 18.8%, load: 4.7, are in normal state, the number of connections increases, the load will increase exponentially number level.<br>
In each cluster scale test basically conform to test and verify.</p>
<table>
<thead>
<tr>
<th style="text-align:center">stand-alone</th>
<th style="text-align:center">3 nodes</th>
<th style="text-align:center">10 nodes</th>
<th style="text-align:center">100 nodes</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">9000</td>
<td style="text-align:center">27000</td>
<td style="text-align:center">90000</td>
<td style="text-align:center">910000</td>
</tr>
</tbody>
</table>
<h2>Test results</h2>
<p>Nacos performance test is aimed at a key function, through the study of the pressure measurement of the cluster size, you can see the interface of each cluster capacity.<br>
This test provides you as reference, if there are any deficiency or deviation, please correct me!<br>
If you have any other requirements on the performance, can you give us the issue.</p>
</div></div></section><footer class="footer-container"><div class="footer-body"><img src="/img/nacos_gray.png"/><div class="cols-container"><div class="col col-12"><h3>Vision</h3><p>By providing an easy-to-use service infrastructure such as dynamic service discovery, service configuration, service sharing and management and etc., Nacos help users better construct, deliver and manage their own service platform, reuse and composite business service faster and deliver value of business innovation more quickly so as to win market for users in the era of cloud native and in all cloud environments, such as private, mixed, or public clouds.</p></div><div class="col col-6"><dl><dt>Documentation</dt><dd><a href="/en-us/docs/what-is-nacos.html" target="_self">Overview</a></dd><dd><a href="/en-us/docs/quick-start.html" target="_self">Quick start</a></dd><dd><a href="/en-us/docs/contributing.html" target="_self">Developer guide</a></dd></dl></div><div class="col col-6"><dl><dt>Resources</dt><dd><a href="/en-us/community/index.html" target="_self">Community</a></dd><dd><a href="https://www.aliyun.com/product/acm?source_type=nacos_pc_20181219" target="_self">Cloud Service ACM</a></dd><dd><a href="https://www.aliyun.com/product/edas?source_type=nacos_pc_20181219" target="_self">Cloud Service EDAS</a></dd><dd><a href="https://www.aliyun.com/product/ahas?source_type=nacos_pc_20190225" target="_self">Cloud Service AHAS</a></dd></dl></div></div><div class="copyright"><span>@ 2018 The Nacos Authors | An Alibaba Middleware (Aliware) Project</span></div></div></footer></div></div>
	<script src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js"></script>
	<script src="https://f.alicdn.com/react/15.4.1/react-dom.min.js"></script>
	<script>
		window.rootPath = '';
  </script>
	<script src="/build/documentation.js"></script>
</body>
</html>